The present invention relates to a computing device, a hardware data transfer unit, a software control unit, and a method for performing a data transfer in a computing device.
Conventionally, the protocol stack in UMTS (Universal Mobile Telecommunications System) mobile equipments is mainly implemented in SW (Software) or Firmware running on a microprocessor or a CPU (Central Processing Unit), for reason of a fast time-to-market and of high flexibility against product upgrades and standard changes.
As data rates increase, HW (Hardware) support for some compute-intensive operations (e.g. data movement and encryption) is required. For example, a HW accelerator is known which combines the data mover with a ciphering engine for efficiently performing ciphering calculations while data is being moved from one memory to another.
Conventionally, the SW-based solutions are used to process each sub-layer and to copy the packet data output of each sub-layer to a separate buffer, where the packets waiting for processing at the layer are stored as a whole. For UMTS layer 2 (MAC/RLC) (Media Access Control/Radio Link Control) processing, MAC-hs PDUs (Protocol Data Units) received from HARQ (Hybrid Automatic Repeat Request) are first buffered, waiting for the MAC-hs layer processing, e.g. reordering, by the CPU. After the reordering when a PDU (Packet Data Units) becomes ready to be delivered to the higher layer, i.e., the RLC layer, the payload is disassembled into RLC PDUs and transferred from the MAC-hs (Media Access Control—high speed) buffer into another buffer, where the PDUs wait for RLC processing.
A conventional accelerator is based on such a memory architecture. Usually, it is desired to avoid data buffering as much as possible, since buffers and their management cost silicon, and data movements between buffers affect both performance and energy. One notices that MAC-hs PDUs are of variable length. There thus arises a choice of either using a maximum memory size or a complicated memory control to buffer the MAC-hs PDUs.
In another conventional system, use is made of a single memory for buffering PDU data for both MAC and RLC processing to improve the efficiency of the memory usage. However, this method is basically a HW solution. Due to the expense of a HW memory management, it is only useful for quite simple applications, e.g. with a single SID (Size Index Identifier).